// 用于（编辑页面）需要用到自定义 css / js 的mixin
export default {
  methods: {
    /**
     * 对自定义js代码块特殊字符（比如 < 和 > 符号之类）进行反转义
     */
    HTMLDecode(str) {
      let temp = document.createElement("div");
      temp.innerHTML = str;
      const output = temp.innerText || temp.textContent;
      temp = null;
      return output;
    },
    /**
     * 绑定到编辑css样式的文本框change事件上
     * 自定义 css 发生改变时实时更新样式
     */
    handleUpdateStyle(val) {
      setTimeout(() => {
        this.$nextTick(() => {
          // 保证组件渲染完成
          const id = `${this.tinymceId || "tinymceId"}_ifr`;
          const tinymceHead = document.getElementById(id).contentDocument.head;
          const settingStyle = Array.from(tinymceHead.querySelectorAll("style")).find(item => item.getAttribute("setting") === "homeSetting");
          if (settingStyle) {
            settingStyle.innerHTML = val;
            return;
          }
          const style = document.createElement("style");
          style.setAttribute("setting", "homeSetting");
          style.innerHTML = val;
          tinymceHead.appendChild(style);
        });
      }, 200);
    }
  }
};